Mobile design patterns

ABSTRACT

A mobile design pattern. In an example embodiment, the design pattern includes a first user interface display screen that depicts a list of user interface controls organized in rows. Each row in the list includes a different set of one or more controls. Each different set of one or more controls is associated with a different set of functionality provided by one or more additional user interface display screens. The example design pattern further includes a second user interface display screen that is accessible via the different sets of one or more controls. The second user interface display screen includes a navigation bar, which includes one or more navigation controls and a title or header identifying a set of functionality associated with the different set of one or more controls. The second user interface display screen further includes an information-display region adapted to display data associated with the set of functionality.

CROSS REFERENCES TO RELATED APPLICATIONS

This application is a continuation-in-part of the following application,U.S. patent application Ser. No. 12/792,571, entitled SEARCH-SORTTOGGLE, filed on Jun. 2, 2010, which is hereby incorporated byreference, as if it is set forth in full in this specification.

BACKGROUND

The present application relates to software development and morespecifically to systems, methods, and patterns for facilitatingdesigning software applications for use in mobile computingenvironments.

Software design methods for developing applications for mobile computingapplications are faced with several challenges due in part to limitedscreen space for displaying user interfaces and limited computingresources, including memory, processor speeds, and network bandwidthlimitations.

Limited screen space is a particularly limiting requirement for mobilesoftware applications. Furthermore, mobile computing applications oftenrun on mobile communications devices, such as cellular telephones, whichoften subject the user to multiple frequent distractions, includingdistractions from calls, text messages, changes in physical environment,and so on.

Mobile enterprise computing applications are particularly demanding, asmobile enterprise application users often must maintain connectivitywith multiple computing resources and applications available via acorporate network.

Design methodologies and accompanying solutions that are generallyapplicable to desktop computing environments are often incompatible withmobile computing environments. As developers and project managers movetheir desktop applications to mobile devices, a comprehensive designapproach is needed to create efficient and compelling user interfacesthat account for mobile computing environment limitations anddistractions.

In general, existing mobile application systems and methods facilitatedesigning software applications for specific mobile platforms, such asthe iPhone®, Android™, Microsoft Windows Mobile®, BlackBerry®, andSymbian™ platforms. Unfortunately, existing mobile applicationdevelopment methodologies often fail to facilitate comprehensive designsolutions suitable for a wide range of mobile platforms.

SUMMARY

An example design pattern for facilitating design of mobile computingapplications includes a first user interface display screen that depictsa list of user interface controls organized in rows. Each row in thelist includes a different set of one or more controls. Each differentset of one or more controls is associated with a different set offunctionality provided by one or more additional user interface displayscreens. The example design pattern further includes a second userinterface display screen that is accessible via one or more of thedifferent sets of one or more controls. The second user interfacedisplay screen includes a navigation bar. The navigation bar includesone or more navigation controls for navigating between user interfacedisplay screens and further includes a title or header identifying a setof functionality associated with the different set of one or morecontrols. The second user interface display screen further includes aninformation-display region that is adapted to display data associatedwith the set of functionality.

In a more specific example embodiment, the second user interface displayscreen further includes a second band of controls that is below or abovethe navigation bar, which stretches horizontally across a display of amobile computing device, such as a cellular telephone. The second bandof controls includes one or more icons that are associated with one ormore functions of the set of functionality provided by the second userinterface display screen.

The present example user interface pattern may include functionality toselectively change, add, or omit an icon from the second band ofcontrols according to a status of a function associated with the icon.The one or more icons may include a search icon and a sort icon, whichare adapted to change appearance in response to user selection thereof.The second band of controls includes a search field for searching dataand displaying search results in the information-display region inresponse thereto. The second band of controls may include, for example,a favorites icon for selectively marking displayed data as a userfavorite.

The second user interface display screen may further include anotification band that is adapted to provide status informationpertaining to functionality accessible to a user. The status informationmay include an indication that information has been updated or that anobject has been created, deleted, or updated.

In the present example embodiment, the first user interface displayscreen further includes a personalization control and a sign-out controlfor providing a personalization option and a sign-out option,respectively. The first user interface display screen includes a firstrow with a control for accessing a worklist. The first user interfacedisplay screen further includes a second row with a control foraccessing functionality for managing information pertaining toopportunities and a third row with a control for accessing functionalityfor managing information in association with a calendar. In the specificexample embodiment, the information in association with a calendar mayinclude information pertaining to scheduled meetings, expenses, dealclosings, sales information, and so on.

Certain embodiments disclosed herein may facilitate rapid design ofmobile computing applications that work well on various mobileplatforms, including iPhone®, BlackBerry®, Symbian™, Android™, andWindows Mobile® devices. Mobile design patterns (also called templates)disclosed herein adhere to various principles for facilitating usabilityand efficiency in mobile computing applications. Some of the designprinciples may include, but are not limited to: elimination ofnon-essential tasks, use of a flattened navigation model, usability inshort spurts, efficient incorporation of business intelligence, accessto simple searching and sorting, efficient access to collaborationmechanisms, minimization of screen real estate required to displayrelevant information and controls for accessing functionality, andsuitability for browser or native implementation, such that applicationsmay be browser-accessible or may run as native applications on a mobiledevice.

Certain embodiments disclosed herein may provide a comprehensive set ofinterworkable design patterns or templates and accompanying developmentsoftware, which provide a framework for development of mobile computingapplications. The framework facilitates conceptualization of solutionsand designs, and is particularly useful for development of enterprisemobile applications and accompanying functionality. Various key areas ofmobile software development are addressed, including page layout;example actions (e.g., search; navigation); personalization, and so on.Use of design patterns disclosed herein may facilitate increasingdeveloper productivity and quality and may be particularly useful fordevelopers using middleware to build mobile applications for enterpriseapplications, where the applications may run in a mobile browser or asnative client-side applications.

A further understanding of the nature and the advantages of particularembodiments disclosed herein may be realized by reference of theremaining portions of the specification and the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an example software development systemfor employing one or more mobile design patterns to constructapplications for mobile computing devices.

FIG. 2 a is a diagram illustrating a first example primary displayscreen of a first embodiment of a mobile design pattern.

FIG. 2 b is a diagram illustrating a second example display screen thatis accessible via the first display screen of FIG. 2 a.

FIG. 2 c is a diagram illustrating a third example display screen thatis accessible via the second example display screen of FIG. 2 b.

FIG. 3 a is a diagram illustrating a first example display screenimplementation of the mobile design pattern of FIG. 2 a on an iPhone®.

FIG. 3 b is a diagram illustrating a second example display screenimplementation of the mobile design pattern of FIG. 2 a on a BlackBerry®device.

FIG. 4 a is a diagram illustrating a fourth example display screen thatis accessible via the first display screen of FIG. 2 a.

FIG. 4 b is a diagram illustrating a fifth example display screen thatis accessible via the fourth example display screen of FIG. 4 a.

FIG. 5 a is a diagram illustrating a sixth example display screen thatis accessible via the second example display screen of FIG. 2 b aftercreate functionality is activated therefrom.

FIG. 5 b is a diagram illustrating a seventh example display screenresulting from the sixth example display screen of FIG. 5 a andillustrating a notification band that provides status informationpertaining to creation of an object.

FIG. 5 c is a diagram illustrating an eighth example display screenresulting from the sixth example display of FIG. 5 a after a note hasbeen created and illustrating a corresponding notification band.

FIG. 6 a is a diagram illustrating a ninth example display screen thatis accessible via the first example display screen of FIG. 2 a andfurther illustrating a band of icons, including a favorites icon.

FIG. 6 b is a diagram illustrating a tenth example display screenresulting after selection of the favorites icon from the ninth exampledisplay screen of FIG. 6 a and illustrating a corresponding notificationand adjustment to the band of icons.

FIG. 6 c is a diagram illustrating an eleventh example display screenfor facilitating documenting and marking objects as favorites, which isaccessible from the first example display screen of FIG. 2 a.

FIG. 7 is a diagram illustrating a twelfth example display screen forimplementing a search according to object-type, wherein the twelfthexample display screen is accessible from the second example displayscreen of FIG. 2 b after selection of a search control.

FIG. 8 a is a diagram illustrating a thirteenth example display screenaccessible via the first display screen of FIG. 2 a illustrating sortedsearch results of items available for purchase.

FIG. 8 b is a diagram illustrating a fourteenth example display screenaccessible via the thirteenth example display of FIG. 8 a, wherein thefourteenth example display illustrates a product object.

DETAILED DESCRIPTION OF EMBODIMENTS

Although the description has been described with respect to particularembodiments thereof, these particular embodiments are merelyillustrative, and not restrictive.

While certain embodiments are discussed herein with respect toimplementations involving use of mobile computing devices, applicationsare not limited thereto. For example, any computing device with alimited display screen area, such as a tablet computing device, maybenefit from organizations of functionality and user interface controlsin accordance with one or more design patterns or templates disclosedherein.

For clarity, certain well-known components, such as hard drives,operating systems, routers, power supplies, and so on, have been omittedfrom the figures. However, those skilled in the art with access to thepresent teachings will know which components to implement and how toimplement them to meet the needs of a given application.

FIG. 1 is a diagram illustrating an example software developmentenvironment 10 for employing one or more mobile design patterns 14 toconstruct applications 12 for mobile computing devices 34-42. Theenvironment 10 includes a software development system 12 running userinterface software 16. User interface display screens produced by theuser interface software 16 are accessible to users via user interfacehardware 18, which may include a display, keys, mouse, and so on.

The software development system 12, which may run on a computer system,such as a Personal Computer (PC), further includes a code generator 20in communication with the user interface software 16. A set of mobiledesign patterns 14, also called templates, are accessible to the userinterface software 16 and the code generator 20. The code generator 20includes machine-readable instructions for selectively incorporatingmobile design patterns from the template set 14 into a generatedsoftware application 22 in response to user input via the user interfacesoftware 16, as discussed more fully below. A generated softwareapplication 22 is accessible to the user interface software 16. A usermay employ the user interface hardware 18 and the user interfacesoftware 16 to both provide input to the code generator specifyingdetails of a software application to be generated with reference to thetemplate set 14 and to test features of the generated application 22.

For illustrative purposes, an optional use-case simulator 24 is shown incommunication with the generated application 22 and the user interfacesoftware 16. The use-case simulator 24 includes descriptionscorresponding to different mobile personas 26. In the present exampleembodiment, the use case simulator 24 includes machine-readableinstructions, i.e., computer code, for testing the generated application22 in accordance with predetermined criteria corresponding to differentmobile personas 26 and to provide feedback in response thereto to theuser interface software 16. The feedback may be analyzed by a user tofacilitate making adjustments to the generated application 22 via thecode generator 20 and the user interface software 16. Exact details ofthe use-case simulator 24 are application specific. The feedbackprovided from the user-case simulator 24 to the user interface software16 may include ratings organized in accordance with predeterminedcriteria associated with each of the mobile personas 26.

Those skilled in the art with access to the present teachings mayreadily determine and implement appropriate details to meet the needs ofa given application without undue experimentation. For example, theuse-case simulator 24 may generate an overall rating or score for thegenerated application 22, where the score indicates how the applicationmeets predetermined criteria associated with each of the mobile personas26. Example mobile personas include field sales representative, fieldservice technician, retail merchandiser, manager, generation Y, and soon.

The software development system 12 further includes a web interface 30for making the generated application 22 available to mobile computingdevices 34-42 via a network 32, such as the Internet. The generatedapplication 22 may be made available as a web service or otherbrowser-accessible application. The application 22 may be accessible viaone or more browsers running on the mobile computing devices 34-42. Forthe purposes of the present discussion, a web service may be anyfunctionality, such as represented by a program, function, process, orother functionality, that is accessible or otherwise may be activatedvia a message sent over a network. An example message includes a UniformResource Locator (URL) sent over a network via HyperText TransferProtocol (HTTP). Another example message includes an eXtensible MarkupLanguage (XML) message sent in accordance with Simple Object AccessProtocol (SOAP). Web services may be written in various languages, suchas Web Services Description Language (WSDL), Java, and so on.

Alternatively, the generated application 22 may be made available fordownload to the mobile computing devices 34-42 (also called mobiledevices) or for upload to another server. When a generated applicationis to be run client-side, i.e., as a native application running on oneor more of the mobile devices 34-42, the code generator 20 may makecertain adjustments to the application 22 so that the application canrun as an executable or as a plug-in on the mobile devices 34-42.

For illustrative purposes, the mobile devices 34-42 are shown includingan iPhone® 34, a BlackBerry® 36, a Symbian™ 38, an Android™ 40, and aWindows Mobile® 42 device. Note that applicable mobile computing devices34-42 are not limited to those shown in FIG. 1. Other examples ofapplicable mobile computing devices include tablets, such as the iPad,and other mobile computers, such as an OQO. In general, use of the noveltemplate set 14 facilitates generation of applications that are readilyusable and that work efficiently on all of the different mobile devices34-42, as discussed more fully below.

In certain implementations, it may be desirable to selectively formatthe generated application 22 for use by each of the different types ofdevices 34-42. In this case, a format converter 28 may be employed toselectively adjust the format of the generated application 22 inaccordance with the type of device 34-42 that is requesting use of theapplication 22. The mobile devices 34-42 may access the generatedapplication 22, such as for download or use as a browser-basedapplication, via the web interface 30.

FIG. 2 a is a diagram illustrating a first example primary displayscreen 50 of a first embodiment of a mobile design pattern, also calleda user interface template or simply template. For the purposes of thepresent discussion, a user interface template may be any pattern orlayout used to describe or depict how data and/or functionality isdisplayed via an application and/or accessed by a user via theapplication. The terms “pattern” and “template” are employedinterchangeably herein. A mobile design pattern may be any pattern ortemplate that is specifically adapted for use with a mobile computingdevice, such as a wireless phone and/or pocket Personal Computer (PC).Note that a particular component of a design pattern, such as acomponent defining the layout or organization of data and functionalityon a single user interface screen, may also be considered a designpattern, as may a collection of such components that are designed towork together.

In the present example embodiment, the primary display screen 50illustrates functionality implemented via an example application, whichorganizes functionality in accordance with an underlying pattern. Thedisplay screen 50 includes a list 52 of user interface controls 58-70,86 organized in rows. A header bar 56 indicates a name of theapplication, e.g., “Mobile Sales,” and is positioned above the uppermostrow of interface controls 58. Each set of user interface controlsinterface controls 58-70, 86 is associated with a different set offunctionality.

For example, for illustrative purposes, the first set of controls 58facilitates access to worklist functionality. A first set of controls 58is shown including an icon 80 and accompanying identifier 82, alsocalled a category label. The icon 80 and/or the identifier 82 may beselected to access other related user interface screens that form partof an underlying design pattern discussed herein. The remainder of thesets of controls 60-70, 86 also include corresponding icons andidentifiers. Optional chevrons 78 are provided for accessing sub-listsor other related sets of controls and/or display screens.

A second example set of controls 60 facilitate user access toopportunities, such as functionality for organizing, documenting, andcontacting persons associated with certain specified opportunities. Athird set of controls 62 facilitates user access to calendar-basedfunctionality. A fourth set of controls 64 facilitates user access toanalytics functionality, such as functionality used to analyze data,plot graphs, depict sales patterns, and so on. Note that analytics mayalso include certain calendar-based, map-based, and other types offunctionality to facilitate analysis of data. A fifth set of controls 66facilitates user access to customer functionality, such as functionalityused to organize, augment, document, etc., information about customers.A sixth set of controls 68 facilitates user access to favoritesfunctionality, such as functionality for enabling a user to mark certainobjects, such as customer profiles, product descriptions, and so on, asfavorites. A seventh set of controls 70 includes settings functionality,such as functionality for enabling a user to selectively affect oradjust functionality of the underlying application. An eighth set ofcontrols 86 includes access to search functionality for searching and/orsorting and displaying results. Additional user options for adjustingsettings or other characteristics or features of the underlyingapplication may be accessed via a personalization control 72 positionedin an optional footer 84.

Note that the various sets of functionality 58-70, 86 are merelyillustrative. More, fewer, and/or different sets of functionality may beemployed other than the set 58-70, 86 shown in FIG. 2 a, withoutdeparting from the scope of the present teachings. For example, a searchfield, search control, and/or sort control may be provided in the headerbar 56 for facilitating cross-object searches and/or sorting operations.Furthermore, the screen 50 may have a scroll bar to enable scrolling toview additional sets of controls. Additional example sets offunctionality may include shopping functionality for searching for andpurchasing products or services; pictures functionality for catalogingand documenting photographs, and so on.

For the purposes of the present discussion, a cross-object search may beany search that queries different types or classes of objects. An objectmay be any grouping of functionality and/or data. Different types ofobjects may be associated with different types of functionality, such asfunctionality implemented by different modules of an application.

The first display screen 50 further includes sign-out options 74, 76,which are preferably positioned in the upper and lower right corners ofthe display screen 50. One or more of the sign-out options 74, 76 may beomitted without departing from the scope of the present teachings.

FIG. 2 b is a diagram illustrating a second example display screen 90that is accessible via the first display screen 50 of FIG. 2 a. Thesecond example user interface display screen 90 may be accessed viaselection of one or more of the opportunities controls 60 of FIG. 2 a.

The second display screen 90 includes a header bar 92 extendinghorizontally across the screen 90. The header bar 92 optionallyspecifies the title of the underlying software application and includesadditional controls, such as a search control 94 for conducting globalsearches, and a shopping control 96 for accessing shoppingfunctionality. Note that additional or fewer controls (or types thereof)may be included in the header bar 92 without departing from the scope ofthe present teachings.

The second display screen 90 further includes a navigation bar 98, whichincludes a category title “Opportunities,” a back button 100 forreturning to the previous display screen 50 of FIG. 2 a, and a createbutton 118. User selection of the create button 118 may activate one ormore additional display screens with functionality for enabling a userto create a new entry, i.e., object, to be categorized as anopportunity.

Additional navigation controls, such as a forward button, an edit-listbutton, and so on, may be provided in the navigation bar 98. Thenavigation bar 98 preferably extends horizontally across the seconddisplay screen 90 and is vertically adjacent to the header bar 92. Forthe purposes of the present discussion, a first bar or row is said to bevertically adjacent to a second bar or row if the first bar ispositioned directly above or below and adjacent to the second bar orrow.

An additional row of controls 102 is positioned below and verticallyadjacent to the navigation bar 98. For illustrative purposes, theadditional row of controls 102 is shown including a search button 104, asort button 106, a search field 108, and an enter button 110. Note thatthe buttons 104, 106 may also be called icons or controls. For thepurposes of the present discussion, a user interface control may be anymechanism, such as a graphical representation or field, used tofacilitate access to functionality via a graphical user interfacedisplay screen. An icon represents a specific type of controlimplemented as graphical representation corresponding to auser-selectable region of a user interface display screen, where userselection of the icon may enable user access to functionality associatedtherewith. Note that if the search button 104 or the sort button 106 areselected, the appearance of the selected button changes (e.g., appearsrecessed or depressed) to indicate that the button has been selected.

An information display region 116 is shown including a list of exampleopportunities 114, which are organized in pages 122. Different pages ofopportunities 114 may be changed via a page-control bar 112, whichincludes page-navigation controls. The page-control bar 112 ispositioned above the list of opportunities 114.

In operation, a user may select the search button 104 and then enterdata to be searched for, i.e., a query, in the search field 108. Afterentering search criteria (query) in the search field 108 and selectingthe enter button 110, search results (such as opportunities 114) aredisplayed. The returned search results may be sorted in accordance withpredetermined sorting options in response to user selection of the sortbutton 106. Note the search button 104 and the sort button 106 representso-called search-sort toggle functionality, which is discussed morefully in co-pending U.S. patent application Ser. No. 12/792,571,entitled “SEARCH-SORT TOGGLE”, filed Jun. 2, 2010, which is incorporatedby reference herein.

FIG. 2 c is a diagram illustrating a third example display screen 120that is accessible via the second example display screen 90 of FIG. 2 b.The third display screen 120 may be accessed, for example, by selectingone of the opportunities 114 shown in the second display screen 90 ofFIG. 2 b.

The third display screen 120 includes the header 92 and an augmentednavigation bar 132. The augmented navigation bar 132 is similar to thenavigation bar 98 of FIG. 2 b with the exception of an additional editbutton 122 for editing information pertaining to a displayed opportunityobject.

Selected opportunity object contents 124 appear in an object-informationdisplay region 134. The optional footer 84 is provided below andvertically adjacent to the object-information display region 134. Forillustrative purposes, the footer 84 is shown including thepersonalization option 72 and sign-out option 76.

In the present specific embodiment, when a user selects the back button100, the second display screen 90 of FIG. 2 b is displayed in responsethereto. If a user selects the edit button 122 followed by “Save” in asubsequent display screen (not shown), the first display screen 50 ofFIG. 2 a is then displayed. Selection of the edit button 122 activatesan additional screen that is adapted to facilitate user modification ofthe information 124, i.e., object, corresponding to the selectedopportunity.

FIG. 3 a is a diagram illustrating a first example display screenimplementation 140 of the mobile design pattern underlying the displayscreen 50 FIG. 2 a approximately as might appear on an iPhone® display.Note that the software application used to generate the display screen140 of FIG. 3 a represents a different implementation than the softwareapplication used to generate the display screen 50 of FIG. 2 a. Howeverboth applications adhere to an underlying design pattern involving alist of functionality and one or more header and footer bars asdisclosed herein.

The example iPhone® display screen 140 includes a browser bar 142, whichis adapted to enable a user to enter a Uniform Resource Locator (URL) ina URL field 146 to access the underlying application via the Internet.The browser bar 142 further includes an Internet search button 144 forfacilitating conducting Internet-based searches. Various designelements, e.g., the search button 144 and URL field 146, shown in thebrowser bar 142, may currently exist in certain software products usedby Apple Inc., such as the iPhone® mobile web browser.

A header bar 148 extending across the screen 140 includes the optionalsign-out control 74 and header indicia indicating that person-galleryfunctionality is being accessed. A search bar 150 is positioned belowthe header bar 148. The search bar 150 includes the search field 108 andan adjacent enter button 110, also called a “go” button. Anadvanced-search-options link 152 for accessing advanced search optionsis also shown in the search bar 150.

A list of functionality 156 is provided in an information-display region154 below the search bar 150. A browser footer 158 is also shown.

Note that while the display screen implementation 140 is generated by abrowser-based implementation of underlying software in accordance withdesign patterns discussed herein, other types of implementations arepossible. For example, the underlying software may be adapted to runoutside of a browser as a stand-alone client-side application.

FIG. 3 b is a diagram illustrating a second example display screenimplementation 170 (of the mobile design pattern used by theperson-gallery application of FIG. 2 a) on a BlackBerry® device display.The display screen 170 of FIG. 3 b is similar to the display screen ofFIG. 3 a with respect to the display of application content, with theexception that a scroll bar 172 is provided for use with the smallerdisplay screen 170 on a BlackBerry® device. For illustrative purposes,various BlackBerry® icons 174 are shown at the top of the display screen170. Furthermore, the scroll bar 172 is a preexisting feature of themobile web browser used in various BlackBerry® devices.

Note that the design patterns discussed herein, and exemplified byvarious display screens discussed herein, work to facilitate efficientaccess to information regardless of the mobile computing device used. Ingeneral, each design pattern will be implemented on each device toensure a desired user experience. Specific implementation details may beimplementation specific. Note, for example, when using an iPhone®, aback button may appear in the display of a given pattern implementation,whereas when using a BlackBerry®, a hard key could be used in place ofthe back button. Certain key functionality discussed herein resides inthe patterns and associated layouts depicting a framework for renderinguser interfaces and underlying functionality.

FIG. 4 a is a diagram illustrating a fourth example display screen 180that is accessible via the first display screen 50 of FIG. 2 a byselecting one of the calendar controls 62 thereof. The fourth exampledisplay screen 180 includes the header 92 and footer 84. Acalendar-meetings navigation bar 182 indicates that the display screen180 is adapted to facilitate user access to functionality fororganizing, documenting, and accessing information pertaining tomeetings with reference to calendar information, as indicated by thetitle “Calendar: Meetings” specified in the navigation bar 182.

The navigation bar 182 further includes the back button 100 forreturning to the display screen 50 of FIG. 2 a, and a create button 118for facilitating creation of a new meetings object. Note that the createbutton 118 may be replaced with an edit button; an edit button may beprovided in addition to the create button 118; the create button 118 andedit button may be omitted; the create button 118 may be replaced with adrop down menu with additional options for creating objects, editingobjects; and so on. The exact functionality to be provided in a givenimplementation is implementation specific and depends upon the needs ofa given application. Those skilled in the art with access to the presentteachings may readily determine, without undue experimentation,appropriate functionality to provide in accordance with one or moredesign patterns disclosed herein.

A calendar navigation bar 186 is positioned below the calendar-meetingsnavigation bar 182. The calendar navigation bar 186 provides variouscontrols for adjusting content 188 to be displayed in aninformation-display region 192 in accordance with a particular day,week, or month.

Additional drop-down menu controls 190 are provided below the calendarnavigation bar 186. The drop-down menu controls 190 are adapted toenable a user to further adjust the displayed content 188 based ondisplay criteria provided in the drop-down menu controls 190, asdiscussed more fully below.

In the present example display screen 180, the content 188 listsscheduled meetings displayed in combination with contact information formeeting attendees.

FIG. 4 b is a diagram illustrating a fifth example display screen 200that is accessible via the fourth example display screen 180 of FIG. 4a. The fifth example display screen 200 is similar to the fourth exampledisplay screen 180 with the exception that the drop-down menu controls190 have been adjusted to display meeting information in accordance withmeeting location information.

For illustrative purposes, the information-display region 192 is shownincluding meeting information 202, which is graphically displayed, suchas by locations 204 on a map in combination with listings of locationsand corresponding addresses. Displayed meeting locations 204 may becolor coded to corresponding listed meeting-location information.

Note that additional options for displaying, sorting, and augmentingmeeting information may be provided without departing from the scope ofthe present teachings. For example, the drop-down menu controls 190 mayinclude further options to display meeting information in accordancewith predetermined tags; in accordance with scheduled meeting duration,and so on. Furthermore, additional calendar-related information otherthan meetings may be displayed using similar underlying design patterns.For example, the drop-down menu controls 190 may be adjusted to displayexpense information categorized by associated employee; deal closingsmay be displayed according to dates associated with the deal closings,and so on.

FIG. 5 a is a diagram illustrating a sixth example display screen 210that is accessible via the second example display screen 90 of FIG. 2 bafter create functionality is activated therefrom, e.g., via selectionof the create button 118 thereof.

The sixth example display screen 210 includes the header 92. Although afooter is not shown, a footer may also be provided without departingfrom the scope of the present teachings. The sixth example displayscreen 210 is adapted to provide user access to functionality forentering information pertaining to an opportunity, i.e.,opportunity-object information.

Various fields and controls 218 are provided for facilitating enteringopportunity-object information in an information-display region of thesixth example display screen 210. After desired information is enteredin the various controls 218, a save button 214 in a navigation bar 212may be selected, thereby saving the associated opportunity object.Subsequently, with reference to FIG. 5 b, a corresponding notificationband 232 is displayed along with an updated version 230 of the sixthexample display 210 of FIG. 5 a. The example display 230 of FIG. 5 b iscalled the seventh example display screen herein.

With reference to FIG. 5 a, additional controls are provided below theinformation display region 216, such as a more bar 220 and accompanyingchevron 224 and a notes bar 222 with an accompanying add icon 226 andnote-count indicator 228. The more bar 220 may facilitate user access toadditional controls, e.g., fields, for entering additional informationpertaining to an opportunity or otherwise selecting additionalpredetermined options. The more bar 220 may be omitted without departingfrom the scope of the present teachings.

Upon creation of a given opportunity, and before a note pertaining to anopportunity is created, the note-count indication 228 will indicatezero. The add icon 226 may be selected to activate an additional userinterface screen for adding a note.

With reference to FIG. 5 c, after the corresponding note is saved, acorresponding notification bar 252 is displayed along with an updatedversion 250 of the sixth example display 210 of FIG. 5 a. A note addedin association with a given opportunity object is considered to be achild object of the given opportunity object.

The example display screen 250 of FIG. 5 c is called the eighth exampledisplay screen herein. The note-count indication 228 has been updated inFIG. 5 c to show that a note has been added. Furthermore, forillustrative purposes, the add icon 226 is replaced with a chevron 256for facilitating access to the associated note. However, the add icon226 may persist in combination with the chevron 256 without departingfrom the scope of the present teachings.

In the present embodiment, when a user selects the chevron 256, anadditional user interface display screen appears, which lists notes andprovides one or more controls (and/or additional display screens) foradding additional notes, i.e., child objects, to one or more opportunityobjects as desired. The note-count indication 228 is adjusted asadditional notes are added and/or removed.

FIG. 6 a is a diagram illustrating a ninth example display screen 260,which is accessible via the first example display screen 50 of FIG. 2 aand further illustrating a band of icons 264, including a favorites icon274. Note that the band of icons 264, which may also be called a headertoolbar, may include controls other than icons without departing fromthe scope of the present teachings.

The ninth example display screen 260 may be accessed, for example, viaselection of an employee control (not shown) in the list of controls 52of FIG. 2 a. The optional footer is provided 84 with the personalizationoption 72 and the sign-out option 76. The example header 92 is alsoshown.

The band of icons 264 is positioned below and vertically adjacent to anemployee navigation bar 262. The so-called employee navigation bar 262indicates that employee functionality is provided via the display screen260, i.e., functionality for documenting, augmenting, editing, adding,and so on, information pertaining to employees, i.e., employee objects.The navigation bar 262 includes the back button 100 for returning to thedisplay screen 50 of FIG. 2 a or another display screen as desired.

The navigation bar 262 further includes an edit button 122. The editbutton 122 of the navigation bar 262 is adapted to activate (in responseto user selection thereof) one or more additional display screens withone or more controls for editing information, such as employeeinformation 268 displayed in an employee information-display region 266of the display screen 260.

For illustrative purposes, the band of icons 264 is shown furtherincluding an email icon 270, for facilitating accessing emailfunctionality and composing emails to send to a given employee; a mapicon 272, for facilitating accessing mapping functionality, such as tomap an address associated with a given employee; and the favorites icon274, for facilitating enabling a user to selectively mark an employeeobject as a favorite. For example, user selection of the favorites icon274 facilitates marking the employee object 268 corresponding to RajaPatel, as a favorite, as discussed more fully below with reference toFIG. 6 b.

FIG. 6 b is a diagram illustrating a tenth example display screen 280resulting after selection of the favorites icon 274 from the ninthexample display screen 260 of FIG. 6 a and illustrating a correspondingfavorites notification 282 and adjustment 288 to the band of icons 264of FIG. 6 a.

With reference to FIGS. 6 a and 6 b, upon user selection of thefavorites icon 274 of FIG. 6 a, the employee object 268 is marked as afavorite via the addition of a favorites symbol 286 adjacent to the“Employee” indicia in the navigation bar 292 of FIG. 6 b. Furthermore,the favorites notification band 282 appears in the display screen 280indicating that the displayed employee object 268 has been marked as afavorite, i.e., that a favorite employee has been added to the favoritescategory. In general notification bands, such as the notification band282 may indicate when an object or information associated therewith hadbeen created, deleted, updated, market, and so on.

The band of icons 264 of FIG. 6 a is replaced with the band of icons 284of FIG. 6 b. The band of icons 284 of FIG. 6 b is similar to the band oficons 264 of FIG. 6 a with the exception that the favorites icon 274 ofFIG. 6 a is removed in FIG. 6 b, leaving an empty space 288. Hence, thefavorites icon 274 of FIG. 6 a is selectively omitted according to thestatus of the displayed object 268. In the present example, since theemployee object 268 has been marked as a favorite, the favorite icon 274of FIG. 6 a is no longer needed. The disappearance of the favorites icon274 is considered to represent an example of a changing of appearance ofan icon in response to or based on user selection thereof. Note that theemployee object 268 may be removed from a favorites list, such as viafunctionality that appears in response to selection of the edit button214 or functionality accessible by selecting one of the favoritescontrols 68 of the first user interface display screen 50 of FIG. 2 a.

FIG. 6 c is a diagram illustrating an eleventh example display screen300. The eleventh example display screen 300 is accessible from thefirst example display screen 50 of FIG. 2 a, such as via selection ofone of the favorites controls 68 thereof. After an object, such as anemployee object or an opportunity object, is marked as a favorite,functionality associated with the object may be further accessible viafavorites functionality associated with the favorites controls 68 ofFIG. 2 a. The eleventh example display screen 300 illustrates an exampleset of controls for facilitating access to favorites functionality.

The eleventh example display screen 300 includes an example favoritesnavigation bar 302 with the back button 100, a title indicating“Favorites,” and a favorites indicator 286. Various controls 304 areprovided in a display region 306. The controls 304 include a first link308 for facilitating access to a listing of all objects that have beenmarked as favorite. The favorites may also be accessible by object type.For example, favorite employees may be accessed via a favorite employeelink 310; favorite appraisals may be accessed via a favorite appraisalslink 312; and favorite approvals may be accessed via an approvals link314.

For example, upon selection of the employee link 310, another screen(not shown) may appear that provides a list of links associated withdifferent employees that have been marked as favorites. The screen mayhave search/sort toggle functionality. Each listed employee link mayfacilitate activation of a corresponding screen. The activated employeescreen may be similar to the display screen 280 of FIG. 6 b, with theexception that the notification bar 282 of FIG. 6 b may be removed.

With reference to FIGS. 6 b and 6 c, after the employee object 268 hasbeen marked as a favorite, it will then appear among the favoritesaccessible via the favorites link 308 and the favorite employees link310 of FIG. 6 c.

FIG. 7 is a diagram illustrating a twelfth example display screen 330for implementing a search according to object-type. The twelfth exampledisplay screen 330 may be accessible (for example) from the secondexample display screen 90 of FIG. 2 b, such as via selection of thesearch control 94 thereof.

The twelfth example display screen 330 includes a search navigation bar332, with an optional back button 100, go button 334, and display screentitle indicating “Search.” In the present example embodiment, thedisplay screen 330 is adapted to facilitate an object search. Thedisplay screen 330 provides an optional object picker 336. Theparticular object that is selected via the object picker 336 may affectvarious search fields and controls 188 displayed in response thereto.

For illustrative purposes, the object picker 336 has been used to select“Employee.” Accordingly, various fields and controls 188 facilitateentering search criteria, such as name, department, work location, andtitle to facilitate implementing a query limited to employee objects.

Note that the object picker 336 may include a “cross-object” option forfacilitating implementing cross-object searches, i.e., searches amongall objects that are accessible via the software underlying the userinterface display screen 330.

FIG. 8 a is a diagram illustrating a thirteenth example display screen350, which may be accessible after execution of a search afteractivation of search functionality from one of the display screens ofFIGS. 1-7. For example, the search controls 86 of FIG. 2 a (and/or thesearch controls 94 of FIGS. 2-8) may be selected to facilitate access tofunctionality provided via the thirteenth example display screen 350 ofFIG. 8 a.

The thirteenth example display screen 350 illustrates search results 358of items in response to a shopping query for products available forpurchase. The search results 358 may be sorted in accordance with apredetermined criterion via the search button 106. The criterion forsorting may be entered in the field 108. The search button 104, togglebutton 106, and field 108, and enter button 110 are provided in the rowof controls 102.

The display screen 350 includes a header 352, which includes the searchcontrol 94 and a shopping cart control 354 for accessing a shoppingcart, as discussed more fully below. The display screen 350 furtherincludes a shopping search results navigation bar 356 entitled“Results(8)” indicating that eight search results for a given shoppingquery were returned and displayed among the results 358. The navigationbar 356 is positioned between the header 352 and the row of controls 102and is vertically adjacent thereto.

An additional row of controls 102 includes the search toggle button 104,the sort toggle button 106, the search field 108, and an enter button110. The sort toggle button 106 may be used to selectively sort thedisplayed results 358 in accordance with predetermined criteria, as maybe entered in the field 108. Upon user selection of one of the results358, the fourteenth display screen 370 of FIG. 8 b is displayed.

FIG. 8 b is a diagram illustrating a fourteenth example display screen370, which is accessible via the thirteenth example display screen 350of FIG. 8 a. The fourteenth example display screen 370 illustrates aproduct object 378, which includes information descriptive of a selectedproduct. The display screen 370 includes the header 92, a shopping-itemnavigation bar 372, a band of icons 376, and information pertaining tothe selected product 378, which is displayed in a shopping-iteminformation display region 380.

A user may mark the shopping object as a favorite; may select theproduct 378 for an express order; may email the product information, andso on, via one or more of the icons 376. The shopping-item navigationbar 372 includes the back button 100 for returning to one or morepreviously displayed screens and further includes an add-to-cart button374. The add-to-cart button 374 is adapted to place the displayedproduct 378 to a shopping cart upon selection of the button 374. Asubsequently displayed shopping cart may include similar headers,navigation bars, and/or icons arranged similarly to the fourteenthdisplay screen 370. Similarly, a notification band may be displayedindicating that a given product has been added to a shopping cart.

An example generalized method that may be employed to facilitateimplementing embodiments of software in accordance with various designpatterns discussed herein includes: investigate information pertainingto the intended use of the software and those likely to use thesoftware; define essential mobile task(s); eliminate or minimizenon-essential tasks; employ conceptual design using availabletechnologies, such as GPS; minimize time necessary to complete tasks;employ business intelligence as needed, e.g., analytics, whileminimizing unnecessary analytics; if search options are desired,implement simple search options, i.e., search options that are quicklyaccessible; embed collaboration tools as needed, e.g., a control forsending email, placing calls, providing access to social networks, etc.;consider providing progressive disclosure of information and limitinginformation displayed at once, while concisely stating or summarizinginformation; and leverage the mobile platform, e.g., by providing theability to offer browser-accessible and/or native applications andassociated functionality.

While certain design patterns and accompanying example layouts arediscussed with reference to certain rows that extending across a userinterface display, embodiments are not limited thereto. For example,rows may be replaced with segments, columns, partial rows, or partialcolumns in certain implementations without departing from the scope ofthe present teachings. Furthermore, the term “row” is taken to includeuser interface features that are included in a horizontal partition of auser interface display screen. Note however, that contents of a row neednot extend entirely across a display for the contents to be consideredas forming a row or being included in a row. For example, a set ofbuttons may be included in a row, but the buttons need not occupy all ofthe horizontal space in a given horizontal partition of the displayarea. Furthermore, a row need not have a visible line or other graphicalboundary delineating a horizontal partition comprising the rowboundaries.

Any suitable programming language can be used to implement the routinesof particular embodiments including C, C++, Java, assembly language,etc. Different programming techniques can be employed such as proceduralor object oriented. The routines can execute on a single processingdevice or multiple processors. Although the steps, operations, orcomputations may be presented in a specific order, this order may bechanged in different particular embodiments. In some particularembodiments, multiple steps shown as sequential in this specificationcan be performed at the same time.

Particular embodiments may be implemented in a computer-readable storagemedium for use by or in connection with the instruction executionsystem, apparatus, system, or device. Particular embodiments can beimplemented in the form of control logic in software or hardware or acombination of both. The control logic, when executed by one or moreprocessors, may be operable to perform that which is described inparticular embodiments.

Particular embodiments may be implemented by using a programmed generalpurpose digital computer, by using application specific integratedcircuits, programmable logic devices, field programmable gate arrays,optical, chemical, biological, quantum or nanoengineered systems,components and mechanisms may be used. In general, the functions ofparticular embodiments can be achieved by any means as is known in theart. Distributed, networked systems, components, and/or circuits can beused. Communication, or transfer, of data may be wired, wireless, or byany other means.

It will also be appreciated that one or more of the elements depicted inthe drawings/figures can also be implemented in a more separated orintegrated manner, or even removed or rendered as inoperable in certaincases, as is useful in accordance with a particular application. It isalso within the spirit and scope to implement a program or code that canbe stored in a machine-readable medium to permit a computer to performany of the methods described above.

As used in the description herein and throughout the claims that follow,“a”, “an”, and “the” includes plural references unless the contextclearly dictates otherwise. Also, as used in the description herein andthroughout the claims that follow, the meaning of “in” includes “in” and“on” unless the context clearly dictates otherwise.

Thus, while particular embodiments have been described herein, latitudesof modification, various changes, and substitutions are intended in theforegoing disclosures, and it will be appreciated that in some instancessome features of particular embodiments will be employed without acorresponding use of other features without departing from the scope andspirit as set forth. Therefore, many modifications may be made to adapta particular situation or material to the essential scope and spirit.

1. A user interface template, the template comprising: a first userinterface display screen depicting a list of user interface controlsorganized in rows, wherein each row in the list includes a different setof one or more controls, wherein each different set of one or morecontrols is associated with a different set of functionality provided byone or more additional user interface display screens; a second userinterface display screen accessible via one or more of the differentsets of one or more controls, wherein the second user interface displayscreen includes: a navigation bar that includes one or more navigationcontrols and a title identifying a set of functionality associated withthe different set of one or more controls; and an information-displayregion adapted to display data associated with the set of functionality.2. The template of claim 1, wherein the second user interface displayscreen further includes a second band of controls vertically adjacent tothe navigation bar, which is adapted to extend across a display of amobile computing device.
 3. The template of claim 2, wherein the secondband of controls includes one or more icons or buttons associated withone or more functions of the set of functionality.
 4. The template ofclaim 3, wherein the user interface template is adapted to selectivelychange, add, or omit an icon from the second band of controls accordingto a status of a function associated with the icon.
 5. The template ofclaim 3, wherein the one or more icons includes a search icon and a sorticon.
 6. The template of claim 5, wherein the search icon and the sorticon are adapted to change appearance in response to user selectionthereof.
 7. The template of claim 5, wherein the second band of controlsincludes a search field adapted to facilitate searching data anddisplaying search results in the information-display region in responsethereto.
 8. The template of claim 5, wherein the second band of controlsincludes a favorites icon that is adapted to associate displayed datawith indicia indicating a user favorite.
 9. The template of claim 1,wherein the second user interface display screen further includes anotification band that is adapted to provide status informationpertaining to functionality accessed by a user.
 10. The template ofclaim 9, wherein the status information includes an indication thatinformation has been updated or that an object has been created,deleted, or updated.
 11. The template of claim 1, wherein first userinterface display screen further includes a personalization control anda sign-out control for providing a personalization option and a sign-outoption, respectively.
 12. The template of claim 1, wherein the firstuser interface display screen includes a first row with a control foraccessing a worklist.
 13. The template of claim 1, wherein the firstuser interface display screen includes a second row with a control foraccessing functionality for managing information pertaining toopportunities.
 14. The template of claim 1, wherein the first userinterface display screen includes a second row with a control foraccessing functionality for managing information in association with acalendar.
 15. The template of claim 14, wherein the information inassociation with a calendar includes information pertaining to scheduledmeetings.
 16. The template of claim 14, wherein the information inassociation with a calendar includes information pertaining to expenses.17. The template of claim 14, wherein the information in associationwith a calendar includes deal closings.
 18. The template of claim 14,wherein the information in association with a calendar includes salesinformation.
 19. An apparatus for providing a design pattern for asoftware application, the apparatus comprising: a digital processorcoupled to a display screen and to a processor-readable storage device,wherein the processor-readable storage device includes one or moreinstructions executable by the digital processor to perform thefollowing acts: displaying a first user interface display screendepicting a list of user interface controls organized in rows, whereineach row in the list includes a different set of one or more controls,wherein each different set of one or more controls is associated with adifferent set of functionality provided by one or more additional userinterface display screens; illustrating a second user interface displayscreen accessible via the different sets of one or more controls,wherein the second user interface display screen includes: a navigationbar that includes one or more navigation controls and a titleidentifying a set of functionality associated with the different set ofone or more controls; and an information-display region adapted todisplay data associated with the set of functionality.
 20. Aprocessor-readable storage device including instructions executable by adigital processor for providing a design pattern, the processor-readablestorage device including one or more instructions for: displaying afirst user interface display screen depicting a list of user interfacecontrols organized in rows, wherein each row in the list includes adifferent set of one or more controls, wherein each different set of oneor more controls is associated with a different set of functionalityprovided by one or more additional user interface display screens;illustrating a second user interface display screen accessible via thedifferent sets of one or more controls, wherein the second userinterface display screen includes: a navigation bar that includes one ormore navigation controls and a title identifying a set of functionalityassociated with the different set of one or more controls; and aninformation-display region adapted to display data associated with theset of functionality.